/**
* jQuery JavaScript Library v1.9.1 && v2.0.0
* http://jquery.com/
*
* Copyright 2005, 2012 jQuery Foundation, Inc. and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* jQuery Extensions Basic Library 基础函数工具包 v1.0 beta
* jquery.jdirk.js
* 二次开发 流云
* 最近更新：2014-03-21
*
* 依赖项：jquery-1.9.1.js late
*
* Copyright 2013-2014 ChenJianwei personal All rights reserved.
* http://www.chenjianwei.org
*/
!
function(window, $, undefined) {
    function _loadJs(a, b) {
        var c, d, e, f, g, h, i;
        for (a = coreUtil.resolveUrl(a), c = document.getElementsByTagName("head"), d = c[0].getElementsByTagName("script"), e = coreUtil.isFunction(b), f = 0; f < d.length; f++) if (g = d[f], g.src == a) return e && b.call(g),
        void 0;
        h = !1,
        i = document.createElement("script"),
        i.type = "text/javascript",
        i.language = "javascript",
        i.src = a,
        i.onload = i.onreadystatechange = function() {
            h || i.readyState && "loaded" != i.readyState && "complete" != i.readyState || (h = !0, i.onload = i.onreadystatechange = null, e && b.call(i))
        },
        c[0].appendChild(i)
    }
    function _loadCss(a, b) {
        var c, d;
        a = coreUtil.resolveUrl(a),
        c = document.createElement("link"),
        c.rel = "stylesheet",
        c.type = "text/css",
        c.media = "screen",
        c.href = a,
        document.getElementsByTagName("head")[0].appendChild(c),
        d = coreUtil.isFunction(b),
        d && b.call(c)
    }
    function f(a) {
        return 10 > a ? "0" + a: a
    }
    function quote(a) {
        return escapable.lastIndex = 0,
        escapable.test(a) ? '"' + a.replace(escapable,
        function(a) {
            var b = meta[a];
            return "string" == typeof b ? b: "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice( - 4)
        }) + '"': '"' + a + '"'
    }
    function str(a, b) {
        var c, d, e, f, h, g = gap,
        i = b[a];
        switch (i && "object" == typeof i && "function" == typeof i.toJSON && (i = i.toJSON(a)), "function" == typeof rep && (i = rep.call(b, a, i)), typeof i) {
        case "string":
            return quote(i);
        case "number":
            return isFinite(i) ? String(i) : "null";
        case "boolean":
        case "null":
            return String(i);
        case "object":
            if (!i) return "null";
            if (gap += indent, h = [], "[object Array]" === Object.prototype.toString.apply(i)) {
                for (f = i.length, c = 0; f > c; c += 1) h[c] = str(c, i) || "null";
                return e = 0 === h.length ? "[]": gap ? "[\n" + gap + h.join(",\n" + gap) + "\n" + g + "]": "[" + h.join(",") + "]",
                gap = g,
                e
            }
            if (rep && "object" == typeof rep) for (f = rep.length, c = 0; f > c; c += 1)"string" == typeof rep[c] && (d = rep[c], e = str(d, i), e && h.push(quote(d) + (gap ? ": ": ":") + e));
            else for (d in i) Object.prototype.hasOwnProperty.call(i, d) && (e = str(d, i), e && h.push(quote(d) + (gap ? ": ": ":") + e));
            return e = 0 === h.length ? "{}": gap ? "{\n" + gap + h.join(",\n" + gap) + "\n" + g + "}": "{" + h.join(",") + "}",
            gap = g,
            e
        }
    }
    var document, location, docElem, history, parent, top, $$, version, core_array, core_trim, core_push, core_slice, core_splice, core_sort, core_join, core_isArray, _matched, _browser, _userAgentMatch, _html5ValidateCache, _enableUniqueID, topJquery, fullScreen, i, union, cx, escapable, gap, indent, meta, rep, cookie_inst, coreString = function() {
        return String.apply(this, arguments)
    },
    coreDate = function() {
        return Date.apply(this, arguments)
    },
    coreNumber = function() {
        return Number.apply(this, arguments)
    },
    coreArray = function() {
        return Array.apply(this, arguments)
    },
    coreBoolean = function() {
        return Boolean.apply(this, arguments)
    },
    coreUtil = function() {
        return Object.apply(this, arguments)
    },
    coreNullable = {},
    coreJquery = function() {
        return $.apply(this, arguments)
    },
    coreHtml5 = {};
    if (coreString.fn = coreString.prototype = {},
    coreDate.fn = coreDate.prototype = {},
    coreNumber.fn = coreNumber.prototype = {},
    coreArray.fn = coreArray.prototype = {},
    coreBoolean.fn = coreBoolean.prototype = {},
    coreUtil.fn = coreUtil.prototype = {},
    coreJquery.fn = coreJquery.prototype = {},
    coreNullable.String = new String, coreNullable.Function = new Function, coreNullable.Date = new Date, coreNullable.Bool = new Boolean, coreNullable.Object = new Object, coreNullable.Number = new Number, coreJquery.string = coreString, coreJquery.date = coreDate, coreJquery.number = coreNumber, coreJquery.array = coreArray, coreJquery.boolean = coreBoolean, coreJquery.util = coreUtil, coreJquery.nullable = coreNullable, coreJquery.html5 = coreHtml5, document = coreUtil.document = window.document, location = coreUtil.location = window.location, docElem = coreUtil.docElem = document.documentElement, history = coreUtil.history = window.history, parent = coreUtil.parent = window.parent, top = coreUtil.top = window.top, $$ = coreJquery.emptyJquery = coreJquery.empty$ = coreJquery.$$ = coreUtil.emptyJquery = coreUtil.empty$ = coreUtil.$$ = $(), version = "2013-01-09", core_array = [], core_trim = version.trim, core_push = core_array.push, core_slice = core_array.slice, core_splice = core_array.splice, core_sort = core_array.sort, core_join = core_array.join, core_isArray = Array.isArray, coreUtil.version = version, coreUtil.type = $.type, coreUtil.isWindow = $.isWindow, coreUtil.isBoolean = function(a) {
        return "boolean" == coreUtil.type(a)
    },
    coreUtil.isString = function(a) {
        return "string" == coreUtil.type(a)
    },
    coreUtil.isDate = function(a) {
        return "date" == coreUtil.type(a)
    },
    coreUtil.isRegExp = function(a) {
        return "regexp" == coreUtil.type(a)
    },
    coreUtil.isObject = function(a) {
        return "object" == coreUtil.type(a)
    },
    coreUtil.isArray = $.isArray, coreUtil.isFunction = $.isFunction, coreUtil.isNumeric = $.isNumeric, coreUtil.isEmptyObject = $.isEmptyObject, coreUtil.isEmptyObjectOrNull = function(a) {
        switch (coreUtil.type(a)) {
        case "string":
            return coreString.isNullOrWhiteSpace(a);
        case "array":
            return 0 == a.length;
        case "date":
            return 0 == Date.parse(a);
        case "object":
            return coreUtil.isEmptyObject(a)
        }
        return null == a || a == undefined
    },
    coreUtil.isPlainObject = $.isPlainObject, coreUtil.isUndefined = function(a) {
        return a === undefined || "undefined" == typeof a
    },
    coreUtil.isNull = function(a) {
        return null === a
    },
    coreUtil.isNullOrUndefined = function(a) {
        return coreUtil.isUndefined(a) || coreUtil.isNull(a)
    },
    coreUtil.isPositive = function(a) {
        return a ? !0 : !1
    },
    coreUtil.isNegative = function(a) {
        return a ? !1 : !0
    },
    coreUtil.isJqueryObject = function(a) {
        return ! (null == a || a == undefined || (a.jquery ? 0 : 1) && a.constructor !== $$.constructor)
    },
    coreUtil.isEmptyJquery = coreUtil.isEmptyJqueryObject = function(a) {
        return coreUtil.isJqueryObject(a) && !a.length
    },
    coreUtil.noop = coreUtil.isFunction($.noop) ? $.noop: function() {},
    coreUtil.trim = $.trim, coreUtil.parseJqueryObject = coreUtil.parseJquery = function(a) {
        return coreUtil.isJqueryObject(a) ? a: $(a)
    },
    coreUtil.likeArray = function(a) {
        if (null == a || a == undefined) return ! 1;
        var b = a.length,
        c = coreUtil.type(a);
        return coreUtil.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : "array" === c || "function" !== c && coreUtil.isNumeric(b) && b >= 0
    },
    coreUtil.likeArrayNotString = function(a) {
        return coreUtil.likeArray(a) && !coreUtil.isString(a)
    },
    coreUtil.getRequest = function() {
        var b, c, d, e, f, g, h, a = window.location.search;
        if ("?" == a.substr(0, 1) && (a = a.substr(1, a.length - 1)), b = [], a.length > 0) for (c = a.split("&"), d = 0; d < c.length; d++) e = c[d],
        f = e.indexOf("="),
        g = e.substring(0, f),
        h = e.substr(f + 1),
        b.push({
            name: g,
            value: h
        }),
        b[g] = h;
        return b
    },
    coreUtil.request = coreUtil.getRequest(), coreUtil.guid = function(a, b) {
        var c, d;
        for (a = coreUtil.isString(a) ? a.toLowerCase() : "d", c = "", d = 1; 32 >= d; d++) c += Math.floor(16 * Math.random()).toString(16),
        (8 == d || 12 == d || 16 == d || 20 == d) && (c += "-");
        switch (a) {
        case "n":
            c = coreString.replaceAll(c, "-", "");
            break;
        case "b":
            c = "{" + c + "}";
            break;
        case "p":
            c = "(" + c + ")";
            break;
        case "d":
        }
        return coreUtil.isNumeric(b) && b > 0 && b <= c.length ? coreString.left(c, b) : c
    },
    coreUtil.getHostPath = function() {
        var a = window.location.href,
        b = window.location.pathname;
        return a.substr(0, a.lastIndexOf(b))
    },
    coreUtil.hostPath = coreUtil.getHostPath(), coreUtil.currentUri = coreUtil.hostPath + window.location.pathname, coreUtil.currentPath = coreUtil.currentUri.substr(0, coreUtil.currentUri.lastIndexOf("/")), coreUtil.rootDegree = 0, coreUtil.getRootPath = function() {
        var c, d, e, a = coreUtil.hostPath,
        b = window.location.pathname;
        if (b.indexOf("/") > -1) {
            for (c = b.split("/"), d = new Array, e = 0; e < c.length; e++) c[e].length > 0 && d.push(c[e]);
            for (e = 0; e < coreUtil.rootDegree && e < d.length; e++) a += "/" + d[e]
        }
        return a
    },
    coreUtil.rootPath = coreUtil.getRootPath(), coreUtil.resolveClientUrl = coreUtil.resolveUrl = function(a) {
        var b, c;
        if (a = String(a), coreString.isNullOrEmpty(a)) return a;
        if (coreString.isUrl(a)) return a;
        for (a = coreString.replaceAll(a, "\\", "/");
        "./" == a.substring(0, 2) || "/" == a.substring(0, 1);) a = a.substring(1, a.length);
        for (b = coreUtil.rootPath.split("/"), c = a.split("/"); b.length > 3 && c.length > 1 && ".." == c[0];) b.pop(),
        c.shift();
        for (; c.length > 1 && ".." == c[0];) c.shift();
        return b.join("/") + "/" + c.join("/")
    },
    coreUtil.closeWindowNoConfirm = function() {
        coreUtil.top.opener = null,
        coreUtil.top.open("", "_self", ""),
        coreUtil.top.close()
    },
    coreUtil.closeWindow = window.close, coreUtil.shieldSourceCode = function() {
        var a = document.body.innerHTML;
        document.open(),
        document.close(),
        document.body.innerHTML = a
    },
    coreUtil.shieldContxtMenuEvent = function(a) {
        document.oncontextmenu = function(b) {
            b.preventDefault(),
            a && "function" == coreUtil.type(a) && a.apply(this, arguments)
        }
    },
    coreUtil.loadJs = function(a, b) {
        var c, d;
        if (coreUtil.likeArray(a) && !coreUtil.isString(a)) for (c = 0; c < a.length; c++) d = c == a.length - 1 ? b: null,
        _loadJs(a[c], d);
        else _loadJs(a, b)
    },
    coreUtil.runJs = function(a, b) {
        var c = coreUtil.isFunction(b);
        _loadJs(a,
        function() {
            document.getElementsByTagName("head")[0].removeChild(this),
            c && b()
        })
    },
    coreUtil.loadCss = function(a, b) {
        var c, d;
        if (coreUtil.likeArray(a) && !coreUtil.isString(a)) for (c = 0; c < a.length; c++) d = c == a.length - 1 ? b: null,
        _loadCss(a, d);
        else _loadCss(a, b)
    },
    coreUtil.eachCall = function(a, b, c) {
        var d, e;
        if (coreUtil.isFunction(b)) {
            if (a == undefined && (a = coreNullable.Object), (c == undefined || 0 > c) && (c = 1), 0 == c) return a;
            for (b.call(this, a), d = 1; c >= d; d++) for (e in a) coreUtil.eachCall.call(this, a[e], b, c - 1)
        }
    },
    coreUtil.preventExtensions = function(a, b) {
        coreUtil.eachCall.call(this, a, Object.preventExtensions, b)
    },
    coreUtil.seal = function(a, b) {
        coreUtil.eachCall.call(this, a, Object.seal, b)
    },
    coreUtil.freeze = function(a, b) {
        coreUtil.eachCall.call(this, a, Object.freeze, b)
    },
    coreUtil.exec = function(a, b) {
        return a ? !b && window.setImmediate ? window.setImmediate(a) : window.setTimeout(a, b) : void 0
    },
    _userAgentMatch = function(a) {
        a = a.toLowerCase();
        var b = /(chrome)[ \/]([\w.]+)/.exec(a) || /(webkit)[ \/]([\w.]+)/.exec(a) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a) || /(msie) ([\w.]+)/.exec(a) || a.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a) || [];
        return {
            browser: b[1] || "",
            version: b[2] || "0"
        }
    },
    _matched = _userAgentMatch(window.navigator.userAgent), _browser = {},
    _matched.browser && (_browser[_matched.browser] = !0, _browser.version = _matched.version), _browser.chrome ? _browser.webkit = !0 : _browser.webkit && (_browser.safari = !0), coreUtil.browser = _browser, coreUtil.equalsCompare = function(a, b) {
        return a == b
    },
    coreUtil.numericCompare = function(a, b) {
        return ! coreUtil.isNumeric(a) && coreString.isNumeric(a) && (a = parseFloat(a, 10)),
        !coreUtil.isNumeric(b) && coreString.isNumeric(b) && (b = parseFloat(b, 10)),
        a > b ? 1 : b > a ? -1 : 0
    },
    coreUtil.equals = function(a, b, c) {
        var d = coreUtil.isFunction(c);
        return d || (c = coreUtil.equalsCompare),
        1 == c.call(this, a, b)
    },
    coreUtil.compare = function(a, b, c) {
        var d = coreUtil.isFunction(c);
        return d || (c = coreUtil.numericCompare),
        c.call(this, a, b)
    },
    coreUtil.filterProperties = function(a, b, c) {
        var d, e;
        b = coreUtil.likeArrayNotString(b) ? b: [],
        d = {};
        for (e in a)(c ? coreArray.contains(b, e) : !coreArray.contains(b, e)) && (d[e] = a[e]);
        return d
    },
    coreUtil.excludeProperties = function(a, b) {
        return coreUtil.filterProperties(a, b, !1)
    },
    coreUtil.extractProperties = function(a, b) {
        return coreUtil.filterProperties(a, b, !0)
    },
    coreString.isString = coreUtil.isString, coreString.isNullOrEmpty = function(a) {
        return a === undefined || null === a || "" === a
    },
    coreString.prototype.isNullOrEmpty = function() {
        return coreString.isNullOrEmpty(this)
    },
    coreString.isNullOrWhiteSpace = function(a) {
        return coreString.isNullOrEmpty(a) || "" === coreString.trim(String(a))
    },
    coreString.prototype.isNullOrWhiteSpace = function() {
        return coreString.isNullOrWhiteSpace(this)
    },
    coreString.isHtmlText = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        a.length >= 3 && "<" === a.charAt(0) && ">" === a.charAt(a.length - 1)
    },
    coreString.prototype.isHtmlText = function() {
        return coreString.isHtmlText(this)
    },
    coreString.replaceAll = function(a, b, c) {
        if (!b || b == c) return a;
        a = coreString.isNullOrEmpty(a) ? "": String(a);
        for (var e = a.length,
        f = 0; a.indexOf(b) > -1 && f++<e;) a = a.replace(b, c);
        return a
    },
    coreString.prototype.replaceAll = function(a, b) {
        return coreString.replaceAll(this, a, b)
    },
    coreString.format = function(str, arg1, arg2, arg3, argn) {
        function proxy(key) {
            try {
                return eval('this["' + key + '"]')
            } catch(ex) {
                return ""
            }
        }
        var isArray, data, i, key, value;
        if (str = coreString.isNullOrEmpty(str) ? "": String(str), isArray = coreUtil.likeArray(arg1), data = isArray && !coreUtil.isString(arg1) || coreUtil.isObject(arg1) ? arg1: coreArray.range(arguments, 1), isArray) for (i = 0; i < data.length; i++) value = data[i] ? data[i] : "",
        str = str.replace(new RegExp("\\{" + i + "}", "gm"), value);
        else for (key in data) value = proxy.call(data, key),
        value = null == value || value == undefined ? "": value,
        str = str.replace(new RegExp("\\{" + key + "}", "gm"), value);
        return str
    },
    coreString.prototype.format = function() {
        return arguments = coreArray.insert(arguments, 0, this),
        coreString.format.apply(this, arguments)
    },
    coreString.contains = function(a, b) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        String(a).indexOf(b) > -1
    },
    coreString.prototype.contains = function(a) {
        return coreString.contains(this, a)
    },
    coreString.reverse = function(a) {
        var c, b = [];
        for (a = coreString.isNullOrEmpty(a) ? "": String(a), c = a.length - 1; c > -1; c--) b.push(a[c]);
        return b.join("")
    },
    coreString.prototype.reverse = function() {
        return coreString.reverse(this)
    },
    coreString.ltrim = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        a.replace(/(^\s*)/g, "")
    },
    coreString.prototype.ltrim = function() {
        return coreString.ltrim(this)
    },
    coreString.rtrim = function() {
        return str = coreString.isNullOrEmpty(str) ? "": String(str),
        str.replace(/(\s*$)/g, "")
    },
    coreString.prototype.rtrim = function() {
        return coreString.rtrim(this)
    },
    coreString.trim = coreUtil.trim, coreString.prototype.trim = function() {
        return coreString.trim(this)
    },
    coreString.padLeft = function(a, b, c) {
        if (a = coreString.isNullOrEmpty(a) ? "": String(a), c = coreString.isNullOrEmpty(c) || !c.length ? " ": c, b = coreUtil.isNumeric(b) ? b: a.length, a.length < b) for (; a.length < b; a = c + a);
        return a
    },
    coreString.prototype.padLeft = function(a, b) {
        return coreString.padLeft(this, a, b)
    },
    coreString.padRight = function(a, b, c) {
        if (a = coreString.isNullOrEmpty(a) ? "": String(a), c = coreString.isNullOrEmpty(c) || !c.length ? " ": c, b = coreUtil.isNumeric(b) ? b: a.length, a.length < b) for (; a.length < b; a += c);
        return a
    },
    coreString.prototype.padRight = function(a, b) {
        return coreString.padRight(this, a, b)
    },
    coreString.mid = function(a, b, c) {
        return b || (b = 0),
        c || (c = 0),
        a = coreString.isNullOrEmpty(a) ? "": String(a),
        a.substr(b, c)
    },
    coreString.prototype.mid = function(a, b) {
        return coreString.mid(this, a, b)
    },
    coreString.lengthOfPrint = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        a.replace(/[^\x00-\xff]/g, "**").length
    },
    coreString.prototype.lengthOfPrint = function() {
        return coreString.lengthOfPrint(this)
    },
    coreString.startsWith = function(a, b) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        a.substr(0, b.length) == b
    },
    coreString.prototype.startsWith = function(a) {
        return coreString.startsWith(this, a)
    },
    coreString.endsWith = function(a, b) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        a.substr(a.length - b.length) == b
    },
    coreString.prototype.endsWith = function(a) {
        return coreString.endsWith(this, a)
    },
    coreString.left = function(a, b) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        coreUtil.isNumeric(b) || (b = parseInt(b, 10)),
        (0 > b || b > a.length) && (b = a.length),
        a.substr(0, b)
    },
    coreString.prototype.left = function(a) {
        return coreString.left(this, a)
    },
    coreString.right = function(a, b) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        coreUtil.isNumeric(b) || (b = parseInt(b, 10)),
        (0 > b || b > a.length) && (b = a.length),
        a.substring(a.length - b, a.length)
    },
    coreString.prototype.right = function(a) {
        return coreString.right(this, a)
    },
    coreString.isLongDate = function(a) {
        var b, c;
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        b = a.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/),
        null == b ? !1 : (c = new Date(b[1], b[3] - 1, b[4], b[5], b[6], b[7]), c.getFullYear() == b[1] && c.getMonth() + 1 == b[3] && c.getDate() == b[4] && c.getHours() == b[5] && c.getMinutes() == b[6] && c.getSeconds() == b[7])
    },
    coreString.prototype.isLongDate = function() {
        return coreString.isLongDate(this)
    },
    coreString.isShortDate = function(a) {
        var b, c;
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        b = a.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/),
        null == b ? !1 : (c = new Date(b[1], b[3] - 1, b[4]), c.getFullYear() == b[1] && c.getMonth() + 1 == b[3] && c.getDate() == b[4])
    },
    coreString.prototype.isShortDate = function() {
        return coreString.isShortDate(this)
    },
    coreString.isDate = function(a) {
        return coreString.isLongDate(a) || coreString.isShortDate(a)
    },
    coreString.prototype.isDate = function() {
        return coreString.isDate(this)
    },
    coreString.isTel = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(a)
    },
    coreString.prototype.isTel = function() {
        return coreString.isTel(this)
    },
    coreString.isMobile = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        /^(13|15|18)\d{9}$/i.test(a)
    },
    coreString.prototype.isMobile = function() {
        return coreString.isMobile(this)
    },
    coreString.isTelOrMobile = function(a) {
        return coreString.isTel(a) || coreString.isMobile(a)
    },
    coreString.prototype.isTelOrMobile = function() {
        return coreString.isTelOrMobile(this)
    },
    coreString.isFax = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(a)
    },
    coreString.prototype.isFax = function() {
        return coreString.isFax(this)
    },
    coreString.isEmail = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(a)
    },
    coreString.prototype.isEmail = function() {
        return coreString.isEmail(this)
    },
    coreString.isZipCode = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        /^[\d]{6}$/.test(a)
    },
    coreString.prototype.isZipCode = function() {
        return coreString.isZipCode(this)
    },
    coreString.existChinese = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        !/^[\x00-\xff]*$/.test(a)
    },
    coreString.prototype.existChinese = function() {
        return coreString.existChinese(this)
    },
    coreString.isChinese = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        /^[\u0391-\uFFE5]+$/i.test(a)
    },
    coreString.prototype.isChinese = function() {
        return coreString.isChinese(this)
    },
    coreString.isEnglish = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        /^[A-Za-z]+$/i.test(a)
    },
    coreString.prototype.isEnglish = function() {
        return coreString.isEnglish(this)
    },
    coreString.isFileName = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        !/[\\\/\*\?\|:<>]/g.test(a)
    },
    coreString.prototype.isFileName = function() {
        return coreString.isFileName(this)
    },
    coreString.isIPv4 = function(a) {
        a = coreString.isNullOrEmpty(a) ? "": String(a);
        var b = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
        return b.test(a) ? (a.match(b), RegExp.$1 <= 255 && RegExp.$1 >= 0 && RegExp.$2 <= 255 && RegExp.$2 >= 0 && RegExp.$3 <= 255 && RegExp.$3 >= 0 && RegExp.$4 <= 255 && RegExp.$4 >= 0 ? !0 : !1) : !1
    },
    coreString.prototype.isIPv4 = function() {
        return coreString.isIPv4(this)
    },
    coreString.isUrl = function(a) {
        var b, c;
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        b = /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
        c = new RegExp(b),
        c.test(a)
    },
    coreString.prototype.isUrl = function() {
        return coreString.isUrl(this)
    },
    coreString.isUrlOrIPv4 = function(a) {
        return coreString.isUrl(a) || coreString.isIP(a)
    },
    coreString.prototype.isUrlOrIPv4 = function() {
        return coreString.isUrlOrIPv4(this)
    },
    coreString.isCurrency = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        /^d{0,}(\.\d+)?$/i.test(a)
    },
    coreString.prototype.isCurrency = function() {
        return coreString.isCurrency(this)
    },
    coreString.isQQ = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        /^[1-9]\d{4,11}$/i.test(a)
    },
    coreString.prototype.isQQ = function() {
        return coreString.isQQ(this)
    },
    coreString.isMSN = function(a) {
        return coreString.isEmail(a)
    },
    coreString.prototype.isMSN = function() {
        return coreString.isMSN(this)
    },
    coreString.isUnNormal = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        /.+/i.test(a)
    },
    coreString.prototype.isUnNormal = function() {
        return coreString.isUnNormal(this)
    },
    coreString.isCarNo = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        /^[\u4E00-\u9FA5][\da-zA-Z]{6}$/.test(a)
    },
    coreString.prototype.isCarNo = function() {
        return coreString.isCarNo(this)
    },
    coreString.isCarEngineNo = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        /^[a-zA-Z0-9]{16}$/.test(a)
    },
    coreString.prototype.isCarEngineNo = function() {
        return coreString.isCarEngineNo(this)
    },
    coreString.isUserName = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        /^[a-zA-Z][a-zA-Z0-9_]{5,15}$/i.test(a)
    },
    coreString.prototype.isUserName = function() {
        return coreString.isUserName(this)
    },
    coreString.isIDCard = function(a) {
        var b, d, e, f, g, h;
        if (a = coreString.isNullOrEmpty(a) ? "": String(a), b = 0, d = a, e = {
            11 : "北京",
            12 : "天津",
            13 : "河北",
            14 : "山西",
            15 : "内蒙古",
            21 : "辽宁",
            22 : "吉林",
            23 : "黑龙江",
            31 : "上海",
            32 : "江苏",
            33 : "浙江",
            34 : "安徽",
            35 : "福建",
            36 : "江西",
            37 : "山东",
            41 : "河南",
            42 : "湖北",
            43 : "湖南",
            44 : "广东",
            45 : "广西",
            46 : "海南",
            50 : "重庆",
            51 : "四川",
            52 : "贵州",
            53 : "云南",
            54 : "西藏",
            61 : "陕西",
            62 : "甘肃",
            63 : "青海",
            64 : "宁夏",
            65 : "新疆",
            71 : "台湾",
            81 : "香港",
            82 : "澳门",
            91 : "国外"
        },
        !/^\d{17}(\d|x)$/i.test(d)) return ! 1;
        if (d = d.replace(/x$/i, "a"), null == e[parseInt(d.substr(0, 2), 10)]) return ! 1;
        if (f = d.substr(6, 4) + "-" + Number(d.substr(10, 2)) + "-" + Number(d.substr(12, 2)), g = new Date(f.replace(/-/g, "/")), f != g.getFullYear() + "-" + (g.getMonth() + 1) + "-" + g.getDate()) return ! 1;
        for (h = 17; h >= 0; h--) b += Math.pow(2, h) % 11 * parseInt(d.charAt(17 - h), 11);
        return 1 != b % 11 ? !1 : !0
    },
    coreString.prototype.isIDCard = function() {
        return coreString.isIDCard(this)
    },
    coreString.isInteger = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        /^[+]?[1-9]+\d*$/i.test(a)
    },
    coreString.prototype.isInteger = function() {
        return coreString.isInteger(this)
    },
    coreString.isNumeric = function(a, b) {
        if (a = coreString.isNullOrEmpty(a) ? "": String(a), isNaN(a)) return ! 1;
        if (0 == arguments.length) return ! 1;
        switch (b) {
        case "":
            return ! 0;
        case "+":
            return /(^\+?|^\d?)\d*\.?\d+$/.test(a);
        case "-":
            return /^-\d*\.?\d+$/.test(a);
        case "i":
            return /(^-?|^\+?|\d)\d+$/.test(a);
        case "+i":
            return /(^\d+$)|(^\+?\d+$)/.test(a);
        case "-i":
            return /^[-]\d+$/.test(a);
        case "f":
            return /(^-?|^\+?|^\d?)\d*\.\d+$/.test(a);
        case "+f":
            return /(^\+?|^\d?)\d*\.\d+$/.test(a);
        case "-f":
            return /^[-]\d*\.\d$/.test(a);
        default:
            return ! 0
        }
    },
    coreString.prototype.isNumeric = function(a) {
        return coreString.isNumeric(this, a)
    },
    coreString.isColor = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        "" == a ? !0 : 7 != a.length ? !1 : -1 != a.search(/\#[a-fA-F0-9]{6}/)
    },
    coreString.prototype.isColor = function() {
        return coreString.isColor(this)
    },
    coreString.isSafePassword = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        !/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/.test(a)
    },
    coreString.prototype.isSafePassword = function() {
        return coreString.isSafePassword(this)
    },
    coreString.toCase = function(a) {
        var b, c;
        for (a = coreString.isNullOrEmpty(a) ? "": String(a), b = "", c = 0; c < a.length; c++) b += a.charCodeAt(c) > 0 && a.charCodeAt(c) < 255 ? String.fromCharCode(a.charCodeAt(c) + 65248) : String.fromCharCode(a.charCodeAt(c));
        return b
    },
    coreString.prototype.toCase = function() {
        return coreString.toCase(this)
    },
    coreString.toHtmlEncode = function(a) {
        a = coreString.isNullOrEmpty(a) ? "": String(a);
        var b = a;
        return b = b.replace(/&/g, "&amp;"),
        b = b.replace(/</g, "&lt;"),
        b = b.replace(/>/g, "&gt;"),
        b = b.replace(/\'/g, "&apos;"),
        b = b.replace(/\"/g, "&quot;"),
        b = b.replace(/\n/g, "<br />"),
        b = b.replace(/\ /g, "&nbsp;"),
        b = b.replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp;")
    },
    coreString.prototype.toHtmlEncode = function() {
        return coreString.toHtmlEncode(this)
    },
    coreString.toDate = function(a) {
        a = coreString.isNullOrEmpty(a) ? "": String(a);
        try {
            return new Date(a.replace(/-/g, "/"))
        } catch(b) {
            return null
        }
    },
    coreString.prototype.toDate = function() {
        return coreString.toDate(this)
    },
    coreString.toBoolean = function(a) {
        return "boolean" == typeof a ? a: (a = coreString.isNullOrEmpty(a) ? "": String(a).toLowerCase(), a = coreString.trim(a), "true" == a || "yes" == a || "y" == a || "t" == a || "1" == a)
    },
    coreString.prototype.toBoolean = function() {
        return coreString.toBoolean(this)
    },
    coreString.toInteger = function(a) {
        return parseInt(a)
    },
    coreString.prototype.toInteger = function() {
        return coreString.toInteger(this)
    },
    coreString.toNumber = function(a) {
        return coreString.toFloat(a)
    },
    coreString.prototype.toNumber = function() {
        return coreString.toNumber(this)
    },
    coreString.toFloat = function(a) {
        return parseFloat(a)
    },
    coreString.prototype.toFloat = function() {
        return coreString.toFloat(this)
    },
    coreString.toNumeric = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        a = coreString.trim(a),
        a.indexOf(".") > -1 ? coreString.toFloat(a) : coreString.toInteger(a)
    },
    coreString.prototype.toNumeric = function() {
        return coreString.toNumeric(this)
    },
    coreString.toObject = function(data) {
        return eval("(" + $.trim(data + "") + ")")
    },
    coreString.prototype.toObject = function() {
        return coreString.toObject(this)
    },
    coreString.toJSONString = function(a) {
        return a = coreString.isNullOrEmpty(a) ? "": String(a),
        a = coreString.trim(a),
        "<" === a.charAt(0) && ">" === a.charAt(a.length - 1) && a.length >= 3 ? $(a).text() : a
    },
    coreString.toFunction = function(a) {
        return coreUtil.isFunction(a) ? a: (a = coreString.isNullOrEmpty(a) ? "": String(a), a = coreString.trim(a), a.startsWith("function") || (a = "function(){" + a + "}"), a = '{ "func": ' + a + " }", coreString.toObject(a).func)
    },
    coreString.prototype.toFunction = function() {
        return coreString.toFunction(this)
    },
    coreNumber.isNumber = coreUtil.isNumeric, coreNumber.round = function(a, b) {
        if (!coreUtil.isNumeric(a)) throw "传入的参数 num 必须是一个数值";
        b = coreUtil.isNumeric(b) ? b: 0;
        var c = new Number(a).toFixed(b);
        return b ? parseFloat(c) : parseInt(c)
    },
    coreNumber.prototype.round = function(a) {
        return coreNumber.round(this, a)
    },
    coreNumber.precision = function(a, b) {
        if (!coreUtil.isNumeric(a)) throw "传入的参数 num 必须是一个数值";
        if (coreUtil.isNumeric(b)) return coreNumber.round(a, b);
        var c = String(a),
        d = c.indexOf(".");
        return - 1 == d ? 0 : c.length - c.indexOf(".") - 1
    },
    coreNumber.isOdd = function(a) {
        return 1 == a % 2
    },
    coreNumber.prototype.isOdd = function() {
        return coreNumber.isOdd(this)
    },
    coreNumber.isEven = function(a) {
        return 0 == a % 2
    },
    coreNumber.prototype.isEven = function() {
        return coreNumber.isEven(this)
    },
    coreArray.isArray = core_isArray ? core_isArray: coreUtil.isArray, coreUtil.isArray = coreArray.isArray, coreArray.likeArray = coreUtil.likeArray, coreArray.likeArrayNotString = coreUtil.likeArrayNotString, coreArray.isNullOrEmpty = function(a) {
        return ! coreArray.likeArray(a) || !a.length
    },
    coreArray.prototype.isNullOrEmpty = function() {
        return coreArray.isNullOrEmpty(this)
    },
    coreArray.push = function(a, b) {
        if (!coreArray.likeArray(a)) throw "传入的参数 array 不是一个数组对象。";
        return core_push.call(a, b)
    },
    coreArray.prototype.push = function(a) {
        return coreArray.push(this, a)
    },
    coreArray.copy = function(a, b) {
        var c = a.length,
        d = 0;
        if (coreUtil.isNumeric(c)) for (; c > d;) core_push.call(b, a[d++]);
        else for (; a[d] !== undefined;) core_push.call(b, a[d++]);
        return b
    },
    coreArray.prototype.copy = function(a) {
        return coreArray.copy(a, this)
    },
    coreArray.prototype.copyTo = function(a) {
        return coreArray.copy(this, a)
    },
    coreArray.clone = function(a) {
        return coreArray.copy(a, [])
    },
    coreArray.prototype.clone = function() {
        return coreArray.clone(this)
    },
    coreArray.contains = function(a, b, c) {
        return coreArray.some(a,
        function(a) {
            return coreUtil.equals(a, b, c)
        })
    },
    coreArray.prototype.contains = function(a, b) {
        return coreArray.contains(this, a, b)
    },
    coreArray.reverse = function(a) {
        var d, b, c, e, f, g;
        if (a = coreArray.likeArray(a) ? a: [], coreArray.isArray(a)) return a.reverse(),
        a;
        for (b = a.length, c = b / 2, e = 0; c > e; e++) d = b - e - 1,
        f = a[e],
        g = a[d],
        a[e] = g,
        a[d] = f;
        return a
    },
    coreArray.indexOf = function(a, b, c, d, e) {
        var f, g, h, i, j;
        if (a = coreArray.likeArray(a) ? a: [], f = -1, !a.length) return f;
        if (arguments.length > 2) {
            if (g = arguments[arguments.length - 1], e = coreUtil.isFunction(g) ? g: null, h = arguments[2], c = coreUtil.isNumeric(h) ? h: 0, 0 > c || a.length < c) return f;
            if (arguments.length > 3 ? (g = arguments[3], d = coreUtil.isNumeric(g) ? g: a.length - c) : d = a.length - c, 0 > d || c + d > a.length) return f
        } else c = 0,
        d = a.length - c,
        e = null;
        for (i = c + d, j = c; i > j; j++) if (coreUtil.equals(a[j], b, e)) {
            f = j;
            break
        }
        return f
    },
    coreArray.prototype.indexOf = function(a, b, c, d) {
        return coreArray.indexOf(this, a, b, c, d)
    },
    coreArray.lastIndexOf = function(a, b, c, d, e) {
        var f, g, h, j, k, l;
        if (a = coreArray.likeArray(a) ? a: [], f = -1, !a.length) return f;
        if (arguments.length > 2) {
            if (g = arguments[arguments.length - 1], e = coreUtil.isFunction(g) ? g: null, h = arguments[2], c = coreUtil.isNumeric(h) ? h: 0, 0 > c || a.length < c) return f;
            if (arguments.length > 3 ? (g = arguments[3], d = coreUtil.isNumeric(g) ? g: a.length - c) : d = a.length - c, 0 > d || c + d > a.length) return f
        } else c = 0,
        d = a.length - c,
        e = null;
        for (j = a.length - c - 1, k = j - d, l = j; l > k; l--) if (coreUtil.equals(a[l], b, e)) {
            f = l;
            break
        }
        return f
    },
    coreArray.prototype.lastIndexOf = function(a, b, c, d) {
        return coreArray.lastIndexOf(this, a, b, c, d)
    },
    coreArray.range = function(a, b, c) {
        return a = coreArray.likeArray(a) ? a: [],
        b = coreUtil.isNumeric(b) ? b: 0,
        c = coreUtil.isNumeric(c) ? c: a.length,
        core_slice.call(a, b, c)
    },
    coreArray.prototype.range = function(a, b) {
        return coreArray.range(this, a, b)
    },
    coreArray.rangeLen = function(a, b, c) {
        b = coreUtil.isNumeric(b) ? b: 0,
        c = coreUtil.isNumeric(c) ? c: a.length;
        var d = b + c;
        return coreArray.range(a, b, d)
    },
    coreArray.prototype.rangeLen = function(a, b) {
        return coreArray.rangeLen(this, a, b)
    },
    coreArray.splitPage = function(a, b, c, d) {
        var e, f, g, h, i, j, k, l;
        return a = coreArray.likeArray(a) ? a: [],
        (!b || !coreUtil.isNumeric(b) || 0 > b) && (b = 0),
        (!c || !coreUtil.isNumeric(c) || 1 > c) && (c = 10),
        e = coreUtil.isFunction(d),
        a = e ? coreArray.clone(a).sort(d) : a,
        f = b * c,
        g = (b + 1) * c,
        h = coreArray.range(a, f, g),
        i = a.length,
        j = Math.ceil(parseFloat(i) / c),
        k = b + 1,
        l = i,
        {
            pageSize: c,
            pageIndex: b,
            rowCount: i,
            data: h,
            pageCount: j,
            pageNumber: k,
            total: l
        }
    },
    coreArray.prototype.splitPage = function(a, b, c) {
        return coreArray.splitPage(this, a, b, c)
    },
    coreArray.removeRange = function(a, b, c) {
        if (!coreArray.likeArray(a)) throw "传入的参数 array 必须是一个数组";
        return b = coreUtil.isNumeric(b) ? b: 0,
        c = coreUtil.isNumeric(c) && c >= 0 ? c: a.length,
        core_splice.call(a, b, c),
        a
    },
    coreArray.prototype.removeRange = function(a, b) {
        return coreArray.removeRange(this, a, b)
    },
    coreArray.removeAt = function(a, b) {
        return coreArray.removeRange(a, b, 1)
    },
    coreArray.prototype.removeAt = function(a) {
        return coreArray.removeAt(this, a)
    },
    coreArray.remove = function(a, b, c) {
        var d = coreArray.indexOf(a, b, c);
        return 0 > d ? a: coreArray.removeAt(a, d)
    },
    coreArray.prototype.remove = function(a, b) {
        return coreArray.remove(this, a, b)
    },
    coreArray.insertRange = function(a, b, c) {
        if (!coreArray.likeArray(a)) throw "传入的参数 array 必须是一个数组";
        if (c = coreArray.likeArray(c) ? c: [], !coreUtil.isNumeric(b) || 0 > b || b > a.length) throw "ArgumentOutOfRangeException: 传入的索引号 index 超出数组 array 的范围。";
        var d = coreArray.range(a, b);
        return coreArray.removeRange(a, b),
        coreArray.copy(c, a),
        coreArray.copy(d, a),
        a
    },
    coreArray.prototype.insertRange = function(a, b) {
        return coreArray.insertRange(this, a, b)
    },
    coreArray.insert = function(a, b, c) {
        var d = [c];
        return coreArray.insertRange(a, b, d)
    },
    coreArray.prototype.insert = function(a, b) {
        return coreArray.insert(this, a, b)
    },
    coreArray.setRange = function(a, b, c) {
        if (!coreArray.likeArray(a)) throw "传入的参数 array 必须是一个数组";
        if (b = coreUtil.isNumeric(b) ? b: 0, 0 > b || a.length < b) throw "ArgumentOutOfRangeException: 传入的索引号 index 超出数组 array 的范围。";
        return c = coreArray.likeArray(c) ? c: [],
        coreArray.removeRange(a, c.length),
        coreArray.insertRange(a, b, c)
    },
    coreArray.prototype.setRange = function(a, b) {
        return coreArray.setRange(this, a, b)
    },
    coreArray.attach = function(a, b, c) {
        return coreArray.contains(a, b, c) || a.push(b),
        a
    },
    coreArray.prototype.attach = function(a, b) {
        return coreArray.attach(this, a, b)
    },
    coreArray.distinct = function(a, b) {
        var c, d, e;
        if (!coreArray.likeArray(a)) throw "传入的参数 array 必须是一个数组对象。";
        for (c = [], d = 0; d < a.length; d++) e = a[d],
        0 == d ? c.push(e) : coreArray.attach(c, e, b);
        return coreArray.removeRange(a, 0),
        coreArray.copy(c, a),
        a
    },
    coreArray.prototype.distinct = function(a) {
        return coreArray.distinct(this, a)
    },
    coreUtil.merge = coreArray.merge = function(a) {
        var e, f;
        if (!coreArray.likeArray(a)) throw "传入的参数 array 必须是一个数组对象。";
        if (arguments.length > 1) for (e = 1; e < arguments.length; e++) f = arguments[e],
        f = coreArray.likeArray(f) && !coreUtil.isString(f) ? f: [f],
        coreArray.copy(f, a);
        return a
    },
    coreArray.prototype.merge = function() {
        return coreArray.merge(this, arguments)
    },
    coreUtil.unique = coreArray.unique = function(a, b) {
        var f = coreArray.clone(arguments);
        return f.callee = arguments.callee,
        coreUtil.isFunction(b) && coreArray.removeAt(f, 1),
        coreArray.merge.apply(this, f),
        coreArray.distinct(a, b),
        a
    },
    coreArray.prototype.unique = function() {
        var e = coreArray.clone(arguments);
        return e.callee = arguments.callee,
        coreArray.insert(e, 0, this),
        coreArray.unique.apply(this, e)
    },
    coreArray.filter = function(a, b, c) {
        var d, e;
        if (a = coreArray.likeArray(a) ? a: [], !coreUtil.isFunction(b)) return a;
        for (d = [], e = 0; e < a.length; e++) 1 == b.call(c, a[e], e, a) && d.push(a[e]);
        return d
    },
    coreArray.prototype.filter = function(a) {
        return coreArray.filter(this, a)
    },
    coreArray.map = function(a, b, c) {
        var d, e, f;
        if (a = coreArray.likeArray(a) ? a: [], !coreUtil.isFunction(b)) throw "传入的参数 callback 不是一个函数。";
        for (d = [], e = 0; e < a.length; e++) f = b.call(c, a[e], e, a),
        d.push(f);
        return d
    },
    coreArray.prototype.map = function(a, b) {
        return coreArray.map(this, a, b)
    },
    coreArray.cast = coreArray.map, coreArray.prototype.cast = function(a) {
        return coreArray.cast(this, a)
    },
    coreArray.max = function(a, b) {
        return a = coreArray.likeArray(a) ? a: [],
        0 == a.length ? undefined: 1 == a.length ? a[0] : coreArray.reduce(coreArray.range(a, 1),
        function(a, c) {
            return coreUtil.compare(a, c, b) >= 0 ? a: c
        },
        a[0])
    },
    coreArray.prototype.max = function(a) {
        return coreArray.max(this, a)
    },
    coreArray.maxs = function(a, b) {
        a = coreArray.likeArray(a) ? a: [];
        var c = coreArray.max(a, b);
        return coreArray.filter(a,
        function(a) {
            return 0 == coreUtil.compare(a, c, b)
        })
    },
    coreArray.prototype.maxs = function(a) {
        return coreArray.maxs(this, a)
    },
    coreArray.min = function(a, b) {
        return a = coreArray.likeArray(a) ? a: [],
        0 == a.length ? undefined: 1 == a.length ? a[0] : coreArray.reduce(coreArray.range(a, 1),
        function(a, c) {
            return coreUtil.compare(c, a, b) >= 0 ? a: c
        },
        a[0])
    },
    coreArray.prototype.min = function(a) {
        return coreArray.min(this, a)
    },
    coreArray.mins = function(a, b) {
        a = coreArray.likeArray(a) ? a: [];
        var c = coreArray.min(a, b);
        return coreArray.filter(a,
        function(a) {
            return 0 == coreUtil.compare(a, c, b)
        })
    },
    coreArray.prototype.mins = function(a) {
        return coreArray.mins(this, a)
    },
    coreArray.sum = function(a, b, c) {
        var d = coreUtil.isFunction(b),
        e = function(a, e) {
            return a + (d ? b.call(c, e) : e)
        };
        return coreArray.reduce(a, e, 0)
    },
    coreArray.prototype.sum = function(a) {
        return coreArray.sum(this, a)
    },
    coreArray.avg = function(a, b, c) {
        a = coreArray.likeArray(a) ? a: [];
        var d = coreArray.sum(a, b, c),
        e = parseFloat(d) / a.length;
        return e
    },
    coreArray.prototype.avg = function(a) {
        return coreArray.avg(this, a)
    },
    coreArray.take = function(a, b) {
        var c, d;
        for (a = coreArray.likeArray(a) ? a: [], (!coreUtil.isNumeric(b) || 1 > b) && (b = 1), c = [], d = 0; d < a.length; d++) b > d && c.push(a[d]);
        return c
    },
    coreArray.prototype.take = function(a) {
        return coreArray.take(this, a)
    },
    coreArray.skip = function(a, b) {
        var c, d;
        for (a = coreArray.likeArray(a) ? a: [], (!coreUtil.isNumeric(b) || 0 > b) && (b = 0), c = [], d = b; d < a.length; d++) c.push(a[d]);
        return c
    },
    coreArray.prototype.skip = function(a) {
        return coreArray.skip(this, a)
    },
    coreArray.forEach = function(a, b, c) {
        var d = coreArray.likeArray(a),
        e = d ? a: [],
        f = 0,
        g = e.length;
        if (0 != e.length) {
            if (!coreUtil.isFunction(b)) throw "传入的参数 callback 不是一个函数。";
            if (d) for (; g > f && 0 != b.call(c, e[f], f, e); f++);
            else for (f in e) if (0 == b.call(c, e[f], f, e)) break;
            return a
        }
    },
    coreArray.prototype.forEach = function(a, b) {
        return coreArray.forEach(this, a, b)
    },
    coreArray.reduce = function(a, b, c) {
        var d, e;
        if (!coreUtil.isFunction(b)) throw "传入的参数 callback 不是一个函数。";
        if (a = coreArray.likeArray(a) ? a: [], 0 == a.length && c === undefined) throw "数组不包含元素，且未提供 initialValue。";
        for (d = 0, c === undefined && (c = a[0], d = 1), e = d; e < a.length; e++) c = b.call(this, c, a[e], e, a);
        return c
    },
    coreArray.prototype.reduce = function(a, b) {
        return coreArray.reduce(this, a, b)
    },
    coreArray.reduceRight = function(a, b, c) {
        var d, e;
        if (!coreUtil.isFunction(b)) throw "传入的参数 callback 不是一个函数。";
        if (a = coreArray.likeArray(a) ? a: [], 0 == a.length && c === undefined) throw "数组不包含元素，且未提供 initialValue。";
        for (d = a.length - 1, c === undefined && (c = a[a.length - 1], d = a.length - 2), e = d; e > -1; e--) c = b.call(this, c, a[e], e, a);
        return c
    },
    coreArray.prototype.reduceRight = function(a, b) {
        return coreArray.reduceRight(this, a, b)
    },
    coreArray.every = function(a, b, c) {
        if (a = coreArray.likeArray(a) ? a: [], 0 == a.length) return ! 0;
        if (!coreUtil.isFunction(b)) throw "传入的参数 callback 不是一个函数。";
        for (var d = 0; d < a.length; d++) if (0 == b.call(c, a[d], d, a)) return ! 1;
        return ! 0
    },
    coreArray.prototype.every = function(a, b) {
        return coreArray.every(this, a, b)
    },
    coreArray.some = function(a, b, c) {
        if (a = coreArray.likeArray(a) ? a: [], !coreUtil.isFunction(b)) throw "传入的参数 callback 不是一个函数。";
        for (var d = 0; d < a.length; d++) if (1 == b.call(c, a[d], d, a)) return ! 0;
        return ! 1
    },
    coreArray.prototype.some = function(a, b) {
        return coreArray.some(this, a, b)
    },
    coreArray.first = function(a, b, c) {
        if (a = coreArray.likeArray(a) ? a: [], !coreUtil.isFunction(b)) return a.length ? a[0] : null;
        for (var d = 0; d < a.length; d++) if (1 == b.call(c, a[d], d, a)) return a[d];
        return null
    },
    coreArray.prototype.first = function(a, b) {
        return coreArray.first(this, a, b)
    },
    coreArray.last = function(a, b, c) {
        if (a = coreArray.likeArray(a) ? a: [], !coreUtil.isFunction(b)) return a.length ? a[a.length - 1] : null;
        for (var d = a.length - 1; d >= 0; d--) if (1 == b.call(c, a[d], d, a)) return a[d];
        return null
    },
    coreArray.prototype.last = function(a, b) {
        return coreArray.last(this, a, b)
    },
    coreArray.sort = function(a, b) {
        var c = coreArray.likeArray(a) ? a: [];
        return core_sort.call(c, b),
        a
    },
    coreArray.prototype.sort = function(a) {
        return coreArray.sort(this, a)
    },
    coreArray.join = function(a, b) {
        var c = coreArray.likeArrayNotString(a) ? a: [];
        return core_join.call(c, b),
        a
    },
    coreArray.prototype.join = function(a) {
        return coreArray.join(this, a)
    },
    coreArray.left = function(a, b) {
        return a = coreArray.likeArray(a) ? a: [],
        !b || !coreUtil.isNumeric(b) || 0 > b ? [] : b > a.length ? coreArray.clone(a) : coreArray.range(a, 0, b)
    },
    coreArray.prototype.left = function(a) {
        return coreArray.left(this, a)
    },
    coreArray.right = function(a, b) {
        return a = coreArray.likeArray(a) ? a: [],
        !b || !coreUtil.isNumeric(b) || 0 > b ? [] : b > a.length ? coreArray.clone(a) : coreArray.range(a, a.length + 1 - b)
    },
    coreArray.prototype.right = function(a) {
        return coreArray.right(this, a)
    },
    coreDate.isDate = function(a) {
        return coreUtil.isDate(a)
    },
    coreDate.likeDate = function(a) {
        return coreDate.isDate(a) || coreString.isDate(a)
    },
    coreDate.toDate = function(a) {
        return coreUtil.isDate(a) ? a: coreUtil.isString(a) ? coreString.toDate(a) : new Date(a)
    },
    coreDate.isLongDate = function(a) {
        return coreString.isLongDate(a)
    },
    coreDate.isShortDate = function(a) {
        return coreString.isShortDate(a)
    },
    coreDate.isLeapYear = function(a) {
        var c, b = 0;
        if (coreDate.isDate(a)) b = new Date(a).getYear();
        else {
            if (!coreUtil.isNumeric(a)) throw "传入的参数 date 的数据类型必须为 Date、String 或者 Number。";
            b = a
        }
        return c = !1,
        c = b >= 0 ? 0 == b % 4 && 0 != b % 100 || 0 == b % 400 : 1 == b % 4 && 0 != b % 100 || 1 == b % 400
    },
    coreDate.prototype.isLeapYear = function() {
        return coreDate.isLeapYear(this)
    },
    coreDate.clone = function(a) {
        var b = coreDate.toDate(a).getTime();
        return new Date(b)
    },
    coreDate.prototype.clone = function() {
        return coreDate.clone(this)
    },
    coreDate.compare = function(a, b) {
        a = coreDate.toDate(a),
        b = coreDate.toDate(b);
        var c = a.getTime(),
        d = b.getTime();
        return coreUtil.compare(c, d)
    },
    coreDate.prototype.compareTo = function(a) {
        return coreDate.compare(this, a)
    },
    coreDate.prototype.equals = function(a) {
        return 0 == coreDate.compare(this, a)
    },
    coreDate.getQuarter = function(a) {
        var b, c;
        return a = coreDate.toDate(a),
        b = a.getMonth(),
        c = 0,
        b >= 0 && 3 > b ? c = 0 : b >= 3 && 6 > b ? c = 1 : b >= 6 && 9 > b ? c = 2 : b >= 9 && 12 > b && (c = 3),
        c
    },
    coreDate.prototype.getQuarter = function() {
        return coreDate.getQuarter(this)
    },
    coreDate.getDayOfWeek = function(a) {
        return a = coreDate.toDate(a),
        a.getDay()
    },
    coreDate.prototype.getDayOfWeek = function() {
        return coreDate.getDayOfWeek(this)
    },
    coreDate.getWeek = function(a, b) {
        a = coreDate.toDate(a),
        b = (b || 0) - 0,
        (!coreUtil.isNumeric(b) || b > 6) && (b = 0);
        var c = a.getFullYear(),
        d = new Date(c, 0, 1),
        e = 7 - d.getDay() + b,
        f = (new Date(c, a.getMonth(), a.getDate()) - d) / 864e5 + 1;
        return Math.ceil((f - e) / 7) + 1
    },
    coreDate.prototype.getWeek = function(a) {
        return coreDate.getWeek(this, a)
    },
    coreDate.getWeekOfMonth = function(a, b) {
        a = coreDate.toDate(a),
        b = (b || 0) - 0,
        (!coreUtil.isNumeric(b) || b > 6) && (b = 0);
        var c = a.getDay(),
        d = a.getDate();
        return Math.ceil((d - c - 1) / 7) + (c >= b ? 1 : 0)
    },
    coreDate.prototype.getWeekOfMonth = function(a) {
        return coreDate.getWeekOfMonth(this, a)
    },
    coreDate.addTime = function(a, b) {
        a = coreDate.toDate(a);
        var c = Date.parse(a);
        return coreUtil.isNumeric(b) || (b = Date.parse(b)),
        new Date(c + b)
    },
    coreDate.prototype.addTime = function(a) {
        return coreDate.addTime(this, a)
    },
    coreDate.addDays = function(a, b) {
        var c, d;
        return a = coreDate.toDate(a),
        c = Date.parse(a),
        coreUtil.isNumeric(b) ? (d = 864e5 * b, new Date(c + d)) : new Date(c)
    },
    coreDate.prototype.addDays = function(a) {
        return coreDate.addDays(this, a)
    },
    coreDate.addHours = function(a, b) {
        var c, d;
        return a = coreDate.toDate(a),
        c = Date.parse(a),
        coreUtil.isNumeric(b) ? (d = 36e5 * b, new Date(c + d)) : new Date(c)
    },
    coreDate.prototype.addHours = function(a) {
        return coreDate.addHours(this, a)
    },
    coreDate.addMilliseconds = function(a, b) {
        a = coreDate.toDate(a);
        var c = Date.parse(a);
        return coreUtil.isNumeric(b) ? new Date(c + b) : new Date(c)
    },
    coreDate.prototype.addMilliseconds = function(a) {
        return coreDate.addMilliseconds(this, a)
    },
    coreDate.addMinutes = function(a, b) {
        var c, d;
        return a = coreDate.toDate(a),
        c = Date.parse(a),
        coreUtil.isNumeric(b) ? (d = 6e4 * b, new Date(c + d)) : new Date(c)
    },
    coreDate.prototype.addMinutes = function(a) {
        return coreDate.addMinutes(this, a)
    },
    coreDate.addWeeks = function(a, b) {
        var c, d;
        return a = coreDate.toDate(a),
        c = Date.parse(a),
        coreUtil.isNumeric(b) ? (d = 6048e5 * b, new Date(c + d)) : new Date(c)
    },
    coreDate.prototype.addWeeks = function(a) {
        return coreDate.addWeeks(this, a)
    },
    coreDate.addMonths = function(a, b) {
        return a = coreDate.toDate(a),
        coreUtil.isNumeric(b) || (b = 0),
        new Date(a.getFullYear(), a.getMonth() + b, a.getDate(), a.getHours(), a.getMinutes(), a.getSeconds(), a.getMilliseconds())
    },
    coreDate.prototype.addMonths = function(a) {
        return coreDate.addMonths(this, a)
    },
    coreDate.addSeconds = function(a, b) {
        var c, d;
        return a = coreDate.toDate(a),
        c = Date.parse(a),
        coreUtil.isNumeric(b) ? (d = 1e3 * b, new Date(c + d)) : new Date(c)
    },
    coreDate.prototype.addSeconds = function(a) {
        return coreDate.addSeconds(this, a)
    },
    coreDate.addTicks = function(a, b) {
        var c, d;
        return a = coreDate.toDate(a),
        c = Date.parse(a),
        coreUtil.isNumeric(b) ? (d = 1e-6 * b, new Date(c + d)) : new Date(c)
    },
    coreDate.prototype.addTicks = function(a) {
        return coreDate.addTicks(this, a)
    },
    coreDate.addYears = function(a, b) {
        return a = coreDate.toDate(a),
        coreUtil.isNumeric(b) || (b = 0),
        new Date(a.getFullYear() + b, a.getMonth(), a.getDate(), a.getHours(), a.getMinutes(), a.getSeconds(), a.getMilliseconds())
    },
    coreDate.prototype.addYears = function(a) {
        return coreDate.addYears(this, a)
    },
    coreDate.addQuarters = function(a, b) {
        return a = coreDate.toDate(a),
        coreUtil.isNumeric(b) || (b = 0),
        new Date(a.getFullYear(), a.getMonth() + 3 * b, a.getDate(), a.getHours(), a.getMinutes(), a.getSeconds(), a.getMilliseconds())
    },
    coreDate.prototype.addQuarters = function(a) {
        return coreDate.addQuarters(this, a)
    },
    coreDate.add = function(a, b, c) {
        if (!coreUtil.isString(b)) return a;
        if (!coreUtil.isNumeric(c)) return a;
        b = b.toLowerCase();
        var d = null;
        switch (b) {
        case "yy":
        case "yyyy":
            d = coreDate.addYears(a, c);
            break;
        case "qq":
        case "q":
            d = coreDate.addQuarters(a, c);
            break;
        case "mm":
        case "m":
            d = coreDate.addMonths(a, c);
            break;
        case "dd":
        case "d":
            d = coreDate.addDays(a, c);
            break;
        case "wk":
        case "ww":
            d = coreDate.addWeeks(a, c);
            break;
        case "hh":
            d = coreDate.addHours(a, c);
            break;
        case "mi":
        case "n":
            d = coreDate.addMinutes(a, c);
            break;
        case "ss":
        case "s":
            d = coreDate.addSeconds(a, c);
            break;
        case "ms":
            d = coreDate.addMilliseconds(a, c);
            break;
        default:
            throw "传入的参数 datepart 为不可识别的值。"
        }
        return d
    },
    coreDate.prototype.add = function(a, b) {
        return coreDate.add(this, a, b)
    },
    coreDate.diff = function(a, b, c) {
        var d, e;
        if (!coreUtil.isString(b)) return null;
        switch (a = coreDate.toDate(a), c = coreDate.toDate(c), b = b.toLowerCase(), d = null, b) {
        case "yy":
        case "yyyy":
            d = c.getFullYear() - a.getFullYear();
            break;
        case "qq":
        case "q":
            e = coreDate.getQuarter(c),
            d = e + 3 * (c.getFullYear() - a.getFullYear()) - e;
            break;
        case "mm":
        case "m":
            d = c.getMonth() + 1 + 12 * (c.getFullYear() - a.getFullYear()) - (a.getMonth() + 1);
            break;
        case "dd":
        case "d":
            d = parseInt((c - a) / 864e5);
            break;
        case "wk":
        case "ww":
            d = parseInt((c - a) / 6048e5);
            break;
        case "hh":
            d = parseInt((c - a) / 36e5);
            break;
        case "mi":
        case "n":
            d = parseInt((c - a) / 6e4);
            break;
        case "ss":
        case "s":
            d = parseInt((c - a) / 1e3);
            break;
        case "ms":
            d = c - a;
            break;
        default:
            throw "传入的参数 datepart 为不可识别的值。"
        }
        return d
    },
    coreDate.prototype.diff = function(a, b) {
        return coreDate.diff(this, a, b)
    },
    coreDate.part = function(a, b) {
        if (!coreUtil.isString(b)) return null;
        a = coreDate.toDate(a),
        b = b.toLowerCase();
        var c = null;
        switch (b) {
        case "yy":
        case "yyyy":
            c = a.getFullYear();
            break;
        case "qq":
        case "q":
            c = coreDate.getQuarter(a);
            break;
        case "mm":
        case "m":
            c = a.getMonth();
            break;
        case "dd":
        case "d":
            c = a.getDate();
            break;
        case "wk":
        case "ww":
            c = a.getWeek();
            break;
        case "hh":
            c = a.getHours();
            break;
        case "mi":
        case "n":
            c = a.getMinutes();
            break;
        case "ss":
        case "s":
            c = a.getSeconds();
            break;
        case "ms":
            c = a.getMilliseconds();
            break;
        default:
            throw "传入的参数 datepart 为不可识别的值。"
        }
        return c
    },
    coreDate.prototype.part = function(a) {
        return coreDate.part(this, a)
    },
    coreDate.format = function(a, b) {
        switch (a = coreDate.toDate(a), b = coreUtil.isEmptyObjectOrNull(b) ? "yyyy-MM-dd": b, typeof a) {
        case "string":
            a = new Date(a.replace(/-/, "/"));
            break;
        case "number":
            a = new Date(a)
        }
        var c = {
            yyyy: a.getFullYear(),
            M: a.getMonth() + 1,
            d: a.getDate(),
            H: a.getHours(),
            m: a.getMinutes(),
            s: a.getSeconds(),
            MM: ("" + (a.getMonth() + 101)).substr(1),
            dd: ("" + (a.getDate() + 100)).substr(1),
            HH: ("" + (a.getHours() + 100)).substr(1),
            mm: ("" + (a.getMinutes() + 100)).substr(1),
            ss: ("" + (a.getSeconds() + 100)).substr(1)
        };
        return b.replace(/(yyyy|MM?|dd?|HH?|ss?|mm?)/g,
        function() {
            return c[arguments[0]]
        })
    },
    coreDate.prototype.format = function(a) {
        return coreDate.format(this, a)
    },
    coreDate.toLongDateTimeString = function(a) {
        a = coreDate.toDate(a);
        var b = a.getFullYear(),
        c = a.getMonth(),
        d = a.getDate(),
        e = a.getHours(),
        f = a.getMinutes(),
        g = a.getSeconds(),
        h = a.getDay(),
        i = coreDate.getQuarter(a),
        j = ["午夜", "凌晨", "早上", "上午", "中午", "下午", "傍晚", "晚上"],
        k = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
        l = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"],
        m = ["春", "夏", "秋", "冬"],
        n = j[Math.floor(parseFloat(e) / 3)],
        o = k[h],
        q = (l[c], m[i]);
        return coreString.format("{0}年{1}月{2}日 {3} {4}季, {5} {6}:{7}:{8}", b, ("" + (c + 101)).substr(1), ("" + (d + 100)).substr(1), o, q, n, ("" + (e + 100)).substr(1), ("" + (f + 100)).substr(1), ("" + (g + 100)).substr(1))
    },
    coreDate.prototype.toLongDateTimeString = function() {
        return coreDate.toLongDateTimeString(this)
    },
    _html5ValidateCache = {},
    coreHtml5.testProp = function(a, b) {
        a = coreString.trim(a),
        b = coreString.trim(b),
        a && (a = a.toLowerCase()),
        b && (b = b.toLowerCase());
        var c = _html5ValidateCache[b];
        return c || (_html5ValidateCache[b] = c = document.createElement(b)),
        a in c ? !0 : !1
    },
    coreUtil.isDOM = function(a, b) {
        return a ? (b = b || document, a.nodeName && 1 == a.nodeType && a.ownerDocument == b) : !1
    },
    _enableUniqueID = !1, coreUtil.uniqueIdName = "uniqueID", coreUtil.getElementUniqueID = function(a) {
        return a != undefined && null != a && a.getAttribute ? a.getAttribute(coreUtil.uniqueIdName) : null
    },
    coreUtil.hasUniqueID = function(a) {
        return ! coreString.isNullOrWhiteSpace(coreUtil.getElementUniqueID(a))
    },
    coreUtil.setElementUniqueID = function(a, b) {
        if (a != undefined && null != a && a.setAttribute) {
            var c = (a.nodeName || coreUtil.uniqueIdName) + "_";
            b = coreString.isNullOrWhiteSpace(b) ? c + coreUtil.guid("N") : b,
            a.setAttribute(coreUtil.uniqueIdName, b, 0)
        }
    },
    coreUtil.initElementUniqueID = function(a) {
        coreUtil.hasUniqueID(a) || coreUtil.setElementUniqueID(a)
    },
    coreUtil._createElement = document.createElement, coreUtil._createDocumentFragment = document.createDocumentFragment, coreUtil.createElement = function() {
        var a = coreUtil._createElement.apply(this, arguments);
        return _enableUniqueID ? (coreUtil.initElementUniqueID(a), a) : a
    },
    coreUtil.createDocumentFragment = function() {
        var b, a = coreUtil._createDocumentFragment.apply(this, arguments);
        return _enableUniqueID ? (b = a.appendChild, a.appendChild = function(a) {
            return $("*", a).add(a).each(function() {
                coreUtil.initElementUniqueID(this)
            }),
            b.apply(this, arguments)
        },
        a) : a
    },
    coreUtil.setEnableUniqueID = function(a) {
        a = coreUtil.isBoolean(a) ? a: !1,
        _enableUniqueID = a,
        a ? (document.createElement = coreUtil.createElement, document.createDocumentFragment = coreUtil.createDocumentFragment, $("*").each(function() {
            coreUtil.initElementUniqueID(this)
        })) : (document.createElement = coreUtil._createElement, document.createDocumentFragment = coreUtil._createDocumentFragment)
    },
    coreUtil.enableUniqueID = function() {
        coreUtil.setEnableUniqueID(!0)
    },
    coreUtil.disableUniqueID = function() {
        coreUtil.setEnableUniqueID(!1)
    },
    coreUtil.getEnableUniqueID = function() {
        return _enableUniqueID
    },
    coreUtil.hasParentWindow = function(a) {
        var c, b = !1;
        try {
            c = a.parent,
            b = c && coreUtil.isWindow(c) && coreUtil.isObject(c.document) ? !0 : !1
        } catch(d) {}
        return b
    },
    coreUtil.getTop = function() {
        for (var a = window; coreUtil.hasParentWindow(a) && a != a.parent;) a = a.parent;
        return a
    },
    coreUtil.getParent = function() {
        var a = window;
        return coreUtil.hasParentWindow(a) && a != a.parent && (a = a.parent),
        a
    },
    parent = coreUtil.parent = coreUtil.getParent(), top = coreUtil.top = coreUtil.getTop(), coreUtil.isTopMost = coreUtil.isTop = window == window.top, coreUtil.hasParentJquery = function(a) {
        var c, b = !1;
        try {
            c = a.parent,
            b = c && coreUtil.isWindow(c) && coreUtil.isObject(c.document) && coreUtil.isFunction(c.jQuery) ? !0 : !1
        } catch(d) {}
        return b
    },
    coreUtil.getTopJquery = function() {
        if (coreUtil.isTopMost) return $;
        for (var a = window; coreUtil.hasParentJquery(a) && a != a.parent;) a = a.parent;
        return a.jQuery
    },
    topJquery = coreUtil.isTopMost ? $: coreUtil.getTopJquery(), coreUtil.$ = coreUtil.jQuery = coreUtil.topJquery = topJquery, coreUtil.currentFrame = null, coreUtil.currentFrameId = null, coreUtil.currentFrameUniqueID = null, coreUtil.getCurrentFrame = function() {
        var a, b, c;
        return coreUtil.isTopMost ? null: (a = null, b = coreArray.merge([], top.document.getElementsByTagName("iframe"), top.document.getElementsByTagName("frame")), c = function(b) {
            var e, d = b.contentWindow;
            if (d === window) return b;
            try {
                if (!d || !coreUtil.isObject(d.document)) return null;
                e = coreArray.merge([], d.document.getElementsByTagName("iframe"), d.document.getElementsByTagName("frame")),
                $.each(e,
                function() {
                    return a = c(this),
                    null == a
                })
            } catch(f) {}
            return a
        },
        $.each(b,
        function() {
            return a = c(this),
            null == a
        }), a)
    },
    coreUtil.isTopMost || (coreUtil.currentFrame = coreUtil.getCurrentFrame()), null != coreUtil.currentFrame && (coreUtil.currentFrameId = coreUtil.currentFrame.id), null != coreUtil.currentFrame && (coreUtil.currentFrameUniqueID = coreUtil.getElementUniqueID(coreUtil.currentFrame)), coreUtil.getActiveElement = function() {
        return $(document.activeElement)
    },
    coreUtil.windowSize = function() {
        var b, c, d, e, h, a = arguments.length,
        f = function() {
            var a = $(window);
            return {
                width: window.innerWidth ? window.innerWidth: a.width(),
                height: window.innerHeight ? window.innerHeight: a.height()
            }
        },
        g = f();
        if (0 == a) return g;
        if (b = arguments[0], d = coreUtil.type(b), 1 == a) {
            if (b = arguments[0], "string" == d) return g[b]; (coreUtil.isPlainObject(b) || "function" == d) && coreUtil.windowSize(b.width || g.width, b.height || g.height)
        }
        a >= 2 && (c = arguments[1], e = coreUtil.type(c), "string" == d && "number" == e && (h = $.extend({},
        g), h[b] = c, (g.width != h.width || g.height != h.height) && window.resizeTo(h.width, h.height)), "number" == d && "number" == e && window.resizeTo(b, c))
    },
    coreUtil.windowOffset = function() {
        var b, c, d, e, h, a = arguments.length,
        f = function() {
            return {
                left: window.screenLeft || window.screenX,
                top: window.screenTop || window.screenY
            }
        },
        g = f();
        if (0 == a) return g;
        if (b = arguments[0], d = coreUtil.type(b), 1 == a) {
            if (b = arguments[0], "string" == d) return g[b]; (coreUtil.isPlainObject(b) || "function" == d) && coreUtil.windowOffset(b.left || g.left, b.top || g.top)
        }
        a >= 2 && (c = arguments[1], e = coreUtil.type(c), "string" == d && "number" == e && (h = $.extend({},
        g), h[b] = c, (g.left != h.left || g.top != h.top) && window.moveTo(newSize.left, newSize.top)), "number" == d && "number" == e && window.moveTo(b, c))
    },
    coreUtil.windowPosition = function() {
        var b, c, d, e, f, g, j, a = arguments.length,
        h = function() {
            return $.extend(coreUtil.windowSize(), coreUtil.windowOffset())
        },
        i = h();
        if (0 == a) return i;
        if (b = arguments[0], f = coreUtil.type(b), 1 == a) {
            if (b = arguments[0], "string" == f) return i[b]; (coreUtil.isPlainObject(b) || "function" == f) && coreUtil.position(b.width || i.width, b.height || i.height, b.left || i.left, b.top || i.top)
        }
        2 == a && (c = arguments[1], g = coreUtil.type(c), "string" == f && "number" == g && (j = $.extend({},
        i), j[b] = c, (i.width != j.width || i.height != j.height || i.left != j.left || i.top != j.top) && (window.moveTo(newSize.left, newSize.top), coreUtil.windowPosition(j.width, j.height, j.left, j.top))), "number" == f && "number" == g && coreUtil.windowSize(b, c)),
        a >= 3 && (c = arguments[1], d = arguments[2], e = arguments.length > 3 ? arguments[3] : null, coreUtil.windowSize(b, c), coreUtil.windowOffset(d, e))
    },
    coreUtil.parseFunction = function(a, b, c) {
        var d = a,
        e = {
            length: 0
        };
        return coreUtil.isFunction(a) && (1 == arguments.length ? (b = [], c = this) : 2 == arguments.length && (coreArray.likeArrayNotString(b) ? c = this: (c = b, b = [])), coreArray.copy(b, e), e.callee = a, d = a.apply(c, e)),
        d
    },
    coreUtil.parseMapFunction = function(a) {
        var d, b = {},
        c = coreUtil.type(a);
        if ("object" == c || "function" == c) for (d in a) b[d] = coreUtil.parseFunction(a[d]);
        return b
    },
    coreUtil.parseJSON = function(a) {
        var b = null,
        c = coreUtil.isString(a);
        return b = coreUtil.isPlainObject(a) || coreUtil.likeArray(a) && !c ? coreUtil.isPlainObject(a.d) ? coreUtil.parseJSON(a.d) : a: $.parseJSON(c ? coreString.toJSONString(a) : $(a).text())
    },
    coreUtil.requestAjaxData = function(a, b) {
        var c = null;
        return b = coreUtil.parseMapFunction(b),
        $.ajax({
            url: a,
            type: "POST",
            data: b,
            async: !1,
            error: function(a) {
                throw a.responseText
            },
            success: function(a) {
                c = a
            }
        }),
        c
    },
    coreUtil.requestAjaxBoolean = function(a, b) {
        var c = coreUtil.requestAjaxData(a, b),
        d = typeof c;
        return ("object" == d || "string" == d && "<" === c.charAt(0) && ">" === c.charAt(c.length - 1) && c.length >= 3) && (c = $(c).text()),
        coreString.toBoolean(c)
    },
    coreUtil.requestAjaxJson = function(a, b) {
        var c = coreUtil.requestAjaxData(a, b);
        return coreUtil.parseJSON(c)
    },
    coreUtil.addCss = function(a, b) {
        return $("<style>" + a + "</style>").attr("type", "text/css").appendTo(b ? b: "head")
    },
    coreUtil.exportExcel = function() {
        $.error("未实现")
    },
    coreJquery.prototype.hasUniqueID = function() {
        return this.length ? coreUtil.hasUniqueID(this[0]) : !1
    },
    coreJquery.prototype.getUniqueID = function() {
        return this.length ? coreUtil.getElementUniqueID(this[0]) : null
    },
    coreJquery.prototype.setUniqueID = function(a) {
        return this.each(function() {
            coreUtil.setElementUniqueID(this, a)
        })
    },
    coreJquery.prototype.initUniqueID = function() {
        return this.each(function() {
            coreUtil.initElementUniqueID(this)
        })
    },
    coreJquery.prototype.uniqueID = function(a) {
        return 0 == arguments.length ? this.getUniqueID() : this.setUniqueID(a)
    },
    coreJquery.prototype.isFocus = function() {
        var b, a = $("*", this).add(this);
        for (b = 0; b < a.length; b++) if (document.activeElement == a[b]) return ! 0;
        return ! 1
    },
    coreJquery.prototype.contains = function(a) {
        var b = !1;
        return this.each(function() {
            return $.contains(this, a) ? (b = !0, !1) : void 0
        }),
        b
    },
    coreJquery.prototype.attach = function() {
        var a = this;
        return $.apply(this, arguments).each(function() {
            a.contains(this) || core_push.call(a, this)
        }),
        a
    },
    coreJquery.prototype.scrollTopP = function() {
        var a = this.height();
        return a = 0 >= a ? parseFloat(a) : parseFloat(1),
        this.scrollTop() / a
    },
    coreJquery.prototype.scrollLeftP = function() {
        var a = this.width();
        return a = 0 >= a ? parseFloat(a) : parseFloat(1),
        this.scrollLeft() / a
    },
    coreJquery.prototype.serializeObject = function(a) {
        function k(a) {
            return e.test(a.type) ? a.checked: a.val
        }
        function l(a) {
            var b = coreArray.filter(a,
            function(a) {
                return e.test(a.type) && 1 == a.checked || !e.test(a.type)
            }),
            c = coreArray.map(b,
            function(a) {
                return a.val
            });
            switch (j.transcript) {
            case "cover":
                return c[c.length - 1];
            case "discard":
                return c[0];
            case "overlay":
                return "array" == j.overtype ? c.length > 1 ? c: c[0] : c.join(j.separator);
            default:
                return c[0]
            }
        }
        var f, g, i, j, b = /\r?\n/g,
        c = /^(?:submit|button|image|reset)$/i,
        d = /^(?:input|select|textarea|keygen)/i,
        e = /^(?:checkbox|radio)$/i,
        h = {};
        return a = a || {},
        i = {
            onlyEnabled: !1,
            transcript: "cover",
            overtype: "append",
            separator: ","
        },
        j = $.extend({},
        i, "string" == typeof a ? {
            transcript: a
        }: a),
        coreArray.contains(["cover", "discard", "overlay"], j.transcript) || (j.transcript = i.transcript),
        coreArray.contains(["array", "append"], j.overtype) || (j.overtype = i.overtype),
        f = this.map(function() {
            var a = jQuery.prop(this, "elements"),
            b = [];
            return $.merge(b, a ? $.makeArray(a) : $(this).find("*")),
            b
        }).filter(function() {
            var a = this.type;
            return this.name && (!j.onlyEnabled || !$(this).is(":disabled")) && d.test(this.nodeName) && !c.test(a)
        }).map(function(a, c) {
            var d = c.name,
            e = this.type,
            f = $(this).val(),
            g = this.checked == undefined || null == this.checked ? null: this.checked;
            return {
                name: d,
                type: e,
                checked: g,
                val: $.isArray(f) ? $.map(f,
                function(a) {
                    return a ? a.replace(b, "\r\n") : a
                }) : f ? f.replace(b, "\r\n") : f
            }
        }),
        g = coreArray.distinct(f.map(function(a, b) {
            return b.name
        })),
        $.each(g,
        function(a, b) {
            var c = f.filter(function(a, c) {
                return c.name == b
            }),
            d = 1 == c.length ? k(c[0]) : l(c);
            h[b] = d == undefined || null == d ? null: d
        }),
        h
    },
    coreUtil.namespace = function(a, b, c) {
        var e, f, d = window;
        if (!a) return d;
        for (e = String(a).split("."), f = 0; f < e.length; f++) e[f] = coreString.trim(e[f]),
        e[f] || coreArray.remove(e, e[f--]);
        return $.each(e,
        function(a, b) {
            d = null == d[b] || d[b] == undefined ? d[b] = {}: d[b]
        }),
        coreUtil.isFunction(b) && b.call(c),
        d
    },
    coreUtil.getDefined = function(a) {
        var b, c, d;
        if (!a) return null;
        for (b = String(a).split("."), c = window, d = 0; d < b.length; d++) b[d] = coreString.trim(b[d]),
        b[d] || coreArray.remove(b, b[d--]);
        return $.each(b,
        function(a, b) {
            c = null == c || c == undefined || null == c[b] || c[b] == undefined ? null: c[b]
        }),
        c
    },
    coreUtil.define = function(a, b, c) {
        var d, e, f, g, h, i, j;
        if (coreUtil.isFunction(b) && (c = b), a) {
            for (h = String(a).split("."), i = 0; i < h.length; i++) h[i] = coreString.trim(h[i]),
            h[i] || coreArray.remove(h, h[i--]);
            "window" != h[0] && h.splice(0, 0, "window"),
            h.length > 1 && (d = coreUtil.namespace(h.slice(0, h.length - 1).join(".")), e = h[h.length - 1])
        }
        return c = coreUtil.isFunction(c) ? c: function() {},
        f = function(a) {
            return c.call(this, a)
        },
        g = function(a) {
            return new f(a)
        },
        g.defaults = g.fn = g.prototype = f.defaults = f.fn = f.prototype,
        $.extend(g, {
            extend: $.extend,
            union: coreJquery.union,
            init: f,
            inst: c
        }),
        $.extend(g.defaults, b, {
            extend: $.extend,
            union: coreJquery.union
        }),
        d && e && (j = d[e], d[e] = g, j && coreJquery.union(g, j)),
        g
    },
    coreUtil.createDefinedObject = function(a, b) {
        var c = coreUtil.getDefined(a);
        return coreUtil.isFunction(c) ? c(b) : null
    },
    coreUtil.disableConsole = function() {
        try {
            var a = window.console;
            Object.defineProperties && Object.defineProperties(window, "console", {
                get: function() {
                    if (a._commandLineAPI) throw "抱歉, 为了用户安全, 本站已禁用 console 脚本功能";
                    return a
                },
                set: function(b) {
                    return a = b
                }
            })
        } catch(b) {}
    },
    fullScreen = {
        supports: !1,
        eventName: "",
        prefix: "",
        prefixes: "webkit moz o ms khtml".split(" "),
        isFullScreen: function() {},
        requestFullScreen: function() {},
        cancelFullScreen: function() {}
    },
    "undefined" != typeof document.cancelFullScreen) fullScreen.supports = !0;
    else for (i = 0; i < fullScreen.prefixes.length; i++) if (fullScreen.prefix = fullScreen.prefixes[i], "undefined" != typeof document[fullScreen.prefix + "CancelFullScreen"]) {
        fullScreen.supports = !0;
        break
    }
    fullScreen.supports && (fullScreen.eventName = fullScreen.prefix + "fullscreenchange", fullScreen.isFullScreen = function() {
        switch (this.prefix) {
        case "":
            return document.fullScreen;
        case "webkit":
            return document.webkitIsFullScreen;
        default:
            return document[this.prefix + "FullScreen"]
        }
    },
    fullScreen.requestFullScreen = function(a) {
        return "" === this.prefix ? a.requestFullScreen() : a[this.prefix + "RequestFullScreen"]()
    },
    fullScreen.cancelFullScreen = function() {
        return "" === this.prefix ? document.cancelFullScreen() : document[this.prefix + "CancelFullScreen"]()
    }),
    coreUtil.isFullScreen = coreJquery.isFullScreen = function() {
        return fullScreen.isFullScreen()
    },
    coreUtil.requestFullScreen = coreJquery.requestFullScreen = function(a) {
        return (null == a || a == undefined) && (a = document.documentElement),
        a = coreUtil.parseJquery(a),
        a.each(function() {
            fullScreen.supports && fullScreen.requestFullScreen(this)
        })
    },
    coreJquery.prototype.requestFullScreen = function() {
        return coreJquery.requestFullScreen(this)
    },
    coreUtil.cancelFullScreen = coreJquery.cancelFullScreen = function(a) {
        return (null == a || a == undefined) && (a = document.documentElement),
        a = coreUtil.parseJquery(a),
        a.each(function() {
            fullScreen.supports && fullScreen.cancelFullScreen(this)
        })
    },
    coreJquery.prototype.cancelFullScreen = function() {
        return coreJquery.cancelFullScreen(this)
    },
    coreUtil.toggleFullScreen = coreJquery.toggleFullScreen = function(a) {
        return (null == a || a == undefined) && (a = document.documentElement),
        a = coreUtil.parseJquery(a),
        a.each(function() {
            fullScreen.supports && (coreUtil.isFullScreen() ? fullScreen.cancelFullScreen(this) : fullScreen.requestFullScreen(this))
        })
    },
    coreJquery.prototype.toggleFullScreen = function() {
        return coreJquery.toggleFullScreen(this)
    },
    coreUtil.supportsFullScreen = fullScreen.supports,
    coreUtil.fullScreenEventName = fullScreen.eventName,
    coreUtil.fullScreen = fullScreen,
    coreUtil.shineInterval = 100,
    coreUtil.shineTimes = 8,
    coreUtil.shine = coreJquery.shine = function(a, b, c) {
        var d, e, f;
        return null == a || a == undefined ? a: (a = coreUtil.parseJquery(a), (!coreUtil.isNumeric(b) || 40 >= b) && (b = coreUtil.shineInterval), (!coreUtil.isNumeric(c) || 4 > c) && (c = coreUtil.shineTimes), d = function() {
            a.addClass("jdirk-shine")
        },
        e = function() {
            a.removeClass("jdirk-shine")
        },
        f = function() {
            coreUtil.exec(d, b / 2),
            coreUtil.exec(e, b),
            c--,
            c > 0 && coreUtil.exec(f, b)
        },
        coreUtil.exec(f), a)
    },
    coreJquery.prototype.shine = function(a, b) {
        return coreJquery.shine(this, a, b)
    },
    coreUtil.addFavorites = function(a, b) {
        var c = {
            url: window.location.href,
            title: document.title
        };
        1 == arguments.length && $.extend(c, a),
        arguments.length > 1 && $.extend(c, {
            url: a,
            title: b
        }),
        window.external && coreUtil.isFunction(window.external.AddFavorite) ? window.external.AddFavorite(c.url, c.title) : window.alert("请按 Ctrl + D 为您的浏览器添加 收藏/书签!")
    },
    union = coreJquery.union = coreJquery.prototype.union = function() {
        var a, b, c, d, e, f, g = arguments[0] || {},
        h = 1,
        i = arguments.length,
        j = !1;
        for ("boolean" == typeof g && (j = g, g = arguments[1] || {},
        h = 2), "object" == typeof g || coreUtil.isFunction(g) || (g = {}), i === h && (g = this, --h); i > h; h++) if (null != (e = arguments[h])) for (d in e) a = g[d],
        c = e[d],
        g !== c && (j && c && (coreUtil.isPlainObject(c) || (b = coreUtil.isArray(c))) ? (b ? (b = !1, f = a && coreUtil.isArray(a) ? a: []) : f = a && coreUtil.isPlainObject(a) ? a: {},
        g[d] = union(j, f, c)) : c === undefined || null === c || a !== undefined && null !== a || (g[d] = c));
        return g
    },
    coreUtil.addCss(".jdirk-shine { filter: alpha(opacity=40); opacity: 0.4; }"),
    _enableUniqueID && $(function() { ! coreUtil.isTopMost && coreUtil.currentFrame && null != coreUtil.currentFrame && coreUtil.initElementUniqueID(coreUtil.currentFrame),
        coreUtil.setEnableUniqueID(_enableUniqueID)
    }),
    "object" != typeof JSON && (JSON = {}),
    "function" != typeof Date.prototype.toJSON && (Date.prototype.toJSON = function() {
        return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + f(this.getUTCMonth() + 1) + "-" + f(this.getUTCDate()) + "T" + f(this.getUTCHours()) + ":" + f(this.getUTCMinutes()) + ":" + f(this.getUTCSeconds()) + "Z": null
    },
    String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function() {
        return this.valueOf()
    }),
    cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
    escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
    meta = {
        "\b": "\\b",
        "	": "\\t",
        "\n": "\\n",
        "\f": "\\f",
        "\r": "\\r",
        '"': '\\"',
        "\\": "\\\\"
    },
    "function" != typeof JSON.stringify && (JSON.stringify = function(a, b, c) {
        var d;
        if (gap = "", indent = "", "number" == typeof c) for (d = 0; c > d; d += 1) indent += " ";
        else "string" == typeof c && (indent = c);
        if (rep = b, b && "function" != typeof b && ("object" != typeof b || "number" != typeof b.length)) throw new Error("JSON.stringify");
        return str("", {
            "": a
        })
    }),
    "function" != typeof JSON.parse && (JSON.parse = function(text, reviver) {
        function walk(a, b) {
            var c, d, e = a[b];
            if (e && "object" == typeof e) for (c in e) Object.prototype.hasOwnProperty.call(e, c) && (d = walk(e, c), d !== undefined ? e[c] = d: delete e[c]);
            return reviver.call(a, b, e)
        }
        var j;
        if (text = String(text), cx.lastIndex = 0, cx.test(text) && (text = text.replace(cx,
        function(a) {
            return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice( - 4)
        })), /^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return j = eval("(" + text + ")"),
        "function" == typeof reviver ? walk({
            "": j
        },
        "") : j;
        throw new SyntaxError("JSON.parse")
    }),
    cookie_inst = function() {
        function b(a) {
            return g.raw ? a: encodeURIComponent(a)
        }
        function c(a) {
            return g.raw ? a: decodeURIComponent(a)
        }
        function d(a) {
            return b(g.json ? JSON.stringify(a) : String(a))
        }
        function e(b) {
            0 === b.indexOf('"') && (b = b.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\"));
            try {
                b = decodeURIComponent(b.replace(a, " "))
            } catch(c) {
                return
            }
            try {
                return g.json ? JSON.parse(b) : b
            } catch(c) {}
        }
        function f(a, b) {
            var c = g.raw ? a: e(a);
            return coreUtil.isFunction(b) ? b(c) : c
        }
        var a = /\+/g,
        g = coreJquery.cookie = coreUtil.cookie = function(a, e, h) {
            var i, j, k, l, m, n, o, p, q;
            if (e !== undefined && !coreUtil.isFunction(e)) return h = $.extend({},
            g.defaults, h),
            "string" == typeof h.expires && (h.expires = coreString.toNumber(h.expires)),
            "number" == typeof h.expires && (i = h.expires, j = h.expires = new Date, j.setDate(j.getDate() + i)),
            document.cookie = [b(a), "=", d(e), h.expires ? "; expires=" + h.expires.toUTCString() : "", h.path ? "; path=" + h.path: "", h.domain ? "; domain=" + h.domain: "", h.secure ? "; secure": ""].join("");
            for (k = a ? undefined: {},
            l = document.cookie ? document.cookie.split("; ") : [], m = 0, n = l.length; n > m; m++) {
                if (o = l[m].split("="), p = c(o.shift()), q = o.join("="), a && a === p) {
                    k = f(q, e);
                    break
                }
                a || (q = f(q)) === undefined || (k[p] = q)
            }
            return k
        };
        g.defaults = {},
        coreJquery.removeCookie = coreUtil.removeCookie = function(a, b) {
            return g(a) !== undefined ? (g(a, "", $.extend({},
            b, {
                expires: -1
            })), !0) : !1
        }
    },
    cookie_inst(),
    union($, coreJquery),
    union($.fn, coreJquery.prototype),
    union(String, coreString),
    union(String.prototype, coreString.fn),
    union(Date, coreDate),
    union(Date.prototype, coreDate.fn),
    union(Number, coreNumber),
    union(Number.prototype, coreNumber.fn),
    union(Array, coreArray),
    union(Array.prototype, coreArray.fn),
    union(Boolean, coreBoolean),
    union(Boolean.prototype, coreBoolean.fn),
    union($.fn, Array.prototype)
} (window, jQuery);